home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / extenddb.arc / EXTENDA.ASM < prev    next >
Assembly Source File  |  1986-02-19  |  3KB  |  83 lines

  1. ;---------------------------------------------------------------
  2. ; Filename: EXTENDA.ASM
  3. ; Program.: Clipper extended library
  4. ; Notes...: User-defined dBASE functions in 8086 assembly for Clipper
  5. ;
  6. ;  dBASE III functions:
  7. ;     ISCOLOR()  ::= True if the computer has an active color card
  8. ;
  9. ;   Functions not in dBASE III or Clipper:
  10. ;      ISPRINTER() ::= True if the printer is online and ready
  11. ;
  12.   NAME    EXTENDA
  13.  
  14.   PUBLIC  ISCOLOR
  15.   PUBLIC  ISPRINTER
  16.  
  17. ; Clipper return value calls
  18.    EXTRN  _RETC:FAR    ;return character string
  19.    EXTRN  _RETDS:FAR   ;return date type from
  20.                         ; date string "YYYYMMDD"
  21.    EXTRN  _RETL:FAR    ;return logical true or false
  22.    EXTRN  _RETNI:FAR   ;return word as numeric
  23.    EXTRN  _RETNL:FAR   ;return double word as numeric
  24.    EXTRN  _RETND:FAR   ;return floating point as numeric
  25.  
  26. _PROG SEGMENT
  27.       ASSUME CS:_PROG
  28.  
  29. ;-------------------------------------------------------------------------
  30. ;  ISCOLOR()
  31. ;  Syntax: ISCOLOR()
  32. ;  Return: Logical true if there is an active colro card in the computer
  33. ;
  34.  
  35. ISCOLOR PROC FAR
  36.  
  37.          MOV       AH,15            ;current video status function
  38.          INT       10H              ;read video status
  39.  
  40.          XOR       BX,BX            ;false
  41.          CMP       AL,07            ;monochrome 80x25
  42.          JE        RET_ISCOLOR      ;return false if other than above
  43.          MOV       BX,1             ;true
  44.  
  45. RET_ISCOLOR:
  46.          PUSH      BX               ;put return value on the stack
  47.          CALL      _RETL            ;return logical value to Clipper
  48.          POP       BX               ;restore the stack
  49.  
  50.          RET
  51.  
  52. ISCOLOR ENDP
  53.  
  54. ;-----------------------------------------------------------------------
  55. ; ISPRINTER()
  56. ; Syntax: ISPRINTER()
  57. ; Return: Logical tue if the printer is online and ready,
  58. ;         otherwise false
  59. ;
  60.  
  61. ISPRINTER PROC FAR
  62.           MOV      AH,2H                ;printer status function
  63.           MOV      DX,0H                ;which printer to check
  64.           INT      17H                  ;read printer status
  65.           XOR      BX,BX                ;false
  66.           CMP      AH,90H               ;not busy/selected (90h = 10010000)
  67.           JNE      RET_ISPRINTER        ;return false if other than above
  68.           MOV      BX,1                 ;true
  69.  
  70. RET_ISPRINTER:
  71.           PUSH     BX                   ;put return value on the stack
  72.           CALL     _RETL                ;return logical value to Clipper
  73.           POP      BX                   ;restore the stack
  74.           RET
  75.  
  76. ISPRINTER ENDP
  77.  
  78. _PROG ENDS
  79.       END
  80.  
  81. ; EOF Extenda.asm------------------------
  82.  
  83.